﻿using System.Collections.Generic;
using Neturion.Dados;
using Neturion.IRepositorios;
using Neturion.Repositorios;
using Neturion.Utils;

namespace Neturion.Negocios
{
    /// <summary>
    /// 
    /// </summary>
    public class NegocioPais
    {
        private IRepositorioPais _repositorioPais;

        /// <summary>
        /// 
        /// </summary>
        public NegocioPais()
        {
            _repositorioPais = new RepositorioPais();
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="pais"></param>
        /// <returns></returns>
        public Pais Inserir(Pais pais)
        {
            pais.Codigo = GeradorCodigo.GerarCodigo(1);
            pais.Codigo += (_repositorioPais.ObterUltimoIdCodigoInteiro() + 1).ToString();
            pais.Codigo += GeradorCodigo.GerarCodigo(1, pais.Codigo);
            return _repositorioPais.Inserir(pais);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="pais"></param>
        /// <returns></returns>
        public Pais Atualizar(Pais pais)
        {
            return _repositorioPais.Atualizar(pais);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="pais"></param>
        public void Excluir(Pais pais)
        {
            Pais paisTmp = ObterPorId(pais.PaisId);
            _repositorioPais.Excluir(paisTmp);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public IList<Pais> ObterTodos()
        {
            return _repositorioPais.ObterTodos();
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Pais ObterPorId(int id)
        {
            return _repositorioPais.ObterPorId(id);
        }

        public Pais ObterPorCodigo(string codigo, Usuario usuarioPermissao)
        {
            return _repositorioPais.ObterPorCodigo(codigo);
        }
    }
}